Orquestador Procesos — motor de procesos de negocio distribuidos, reactivo y auditable. Solicitar demo →
Inicio/Productos/Orquestador Procesos
Motor reactivo · tolerante a fallos · multi-tenant

El motor que ejecuta tus procesos de negocio.

Diseña un proceso como un grafo de nodos —tareas, decisiones, integraciones, esperas— y Orquestador Procesos lo ejecuta paso a paso, manteniendo trazabilidad y reaccionando a los fallos según las reglas que declaras en el propio diagrama.

studio / procesos / pedido-aprovisionamiento · v3 IN_PROGRESS
Inicio
startCOMPLETED
Validar (API)
action · crawlerCOMPLETED
Esperar pago
wait · eventoWAITING · ttl 120s
¿Importe > 1000€?
gatewayNEXT
Revisión humana
task · bandeja
Fin
end
!Avisar operación
exception →handled
// Para qué sirve

Procesos que hoy viven en correos, hojas de cálculo y scripts dispersos.

Orquestador Procesos los convierte en flujos ejecutables, coordinados y auditables.

Automatiza flujos

Trabajo que hoy va por correo, Excel o scripts sueltos, ejecutado de forma fiable y repetible.

Coordina sistemas

CRMs, ERPs y APIs SaaS orquestados sin código pegamento entre ellos.

Espera al mundo real

Una firma, un pago confirmado, un evento IoT — el flujo se reanuda solo cuando llega.

Audita todo

Cada paso queda registrado con quién, cuándo y por qué. Trazabilidad completa.

Recupérate de errores

Reintentos automáticos, conectores de excepción y TTL — sin perder trabajo.

// Modelo de ejecución

Cuatro entidades. Si entiendes esto, todo encaja.

Del diseño que dibujas en Studio a cada paso concreto que el motor ejecuta y registra.

DISEÑO
ProcessDefinition

El proceso que dibujas: nodos, conectores, propiedades. Sin estado de ejecución. Versionado e inmutable al publicar.

EJECUCIÓN
ProcessInstance

Una ejecución concreta de una versión. Tiene contexto, estado y tiempos. Miles pueden correr a la vez, independientes.

CURSOR
TokenInstance

El cursor que avanza por el grafo. Se divide en un fork paralelo y se reúne en un join. Su estado agrega el de la instancia.

PASO
NodeInstance

La ejecución de un nodo por un token, con inputs, outputs y tiempos. Lo que ves en el viewer al inspeccionar una instancia.

Motor reactivo: el engine no bloquea hilos esperando. El estado vive en BD; los hilos son efímeros — una sola instancia sostiene decenas de miles de procesos en espera a la vez.
// Tipos de nodo

Las primitivas que de verdad necesitas en producción.

Un modelo propio, más simple que BPMN 2.0 y a la vez más explícito en errores y tiempos.

start

Arranca la instancia. Se ejecuta una sola vez.

→ COMPLETED
task

Tarea humana. Crea una entrada en la bandeja y espera a que alguien la complete.

WAITING → COMPLETED
action

Integración externa (HTTP/JDBC/FTP/SaaS). Delega en el crawler.

WAITING → COMPLETED · ERROR_HANDLED
wait

Espera un evento del mundo real o un tiempo concreto.

WAITING / SCHEDULED → COMPLETED
gateway

Decisión, fork o join. Evalúa condiciones y ramifica el token.

→ COMPLETED
{}script

Ejecuta una expresión inline para transformar variables del contexto.

→ COMPLETED
loop

Itera sobre una colección hasta agotarla.

→ COMPLETED
end

Marca un final y cierra el token.

→ COMPLETED
// Tolerancia a errores

El error no es algo a evitar. Es otra rama del diagrama.

Cuando algo falla, el estado queda registrado y el motor busca la rama de recuperación que declaraste. Nada se pierde.

connection
Camino feliz

Por defecto: se sigue cuando el nodo termina con éxito.

exception
Algo falló

Excepción no controlada o estado ERROR. El nodo queda handled y el token continúa por esta rama.

maxRetries
Reintentos agotados

Solo para action: se alcanzó el máximo de intentos. Envía, por ejemplo, a una cola de revisión humana.

expired
Se acabó la paciencia

Para wait y action: caducó el TTL del nodo y el flujo toma una ruta alternativa.

"Cualquier fallo recuperable debe estar modelado explícitamente en el diseño."

Si lo modelas, el flujo se recupera solo. Si no, el token queda en error esperando intervención manual — y el operador siempre puede reintentar desde Studio cualquier nodo. Una red de seguridad (DLQ) recoge lo que ni siquiera es interpretable.

ERROR_HANDLED MAX_RETRIES_HANDLED TTL_EXPIRED_HANDLED ERROR TTL_EXPIRED
// TTL y cancelación

Un límite de paciencia por nodo.

El TTL no es un timeout para matar trabajos largos: es la forma de escapar de esperas que se fueron al limbo. Al caducar, el motor cancela el trabajo en vuelo automáticamente.

1
action(ttl=120s)El token entra y queda esperando al crawler. Se registra expires_at = now + 120s.
2
watchdog @ 30sCada 30s busca suscripciones caducadas. Detecta que el evento no llegó a tiempo.
3
cancel.actionPublica una cancelación: el job del crawler pasa a CANCELLED y deja de reintentarse.
4
expireFromWaitEl token toma la rama expired si existe; si no, queda en TTL_EXPIRED.
Llamada API en sistema rápido60–300 s
Espera de respuesta humana (correo)≈ 1 día
Evento poco frecuente (mensual)≈ 30 días
Acción crítica que no puede colgarsenunca sin TTL

// el TTL cuenta tiempo de pared; max_attempts cuenta intentos. Son independientes y se combinan.

// Arquitectura

No una app monolítica: servicios que cooperan por mensajería.

Aislamiento de fallos, escalado independiente y el lenguaje adecuado a cada problema. Si el componente que llama a un ERP cae, el motor sigue y los trabajos se reintentan al volver.

engine Java · Spring

Ejecuta procesos: recibe eventos, mueve tokens, decide ramas y persiste estado.

process-manager repositorio

Definiciones versionadas. Multi-tenant. Solo el engine lee de aquí.

crawler Quarkus · Camel

Ejecuta integraciones externas (HTTP/JDBC/FTP) bajo demanda del engine.

studio TypeScript · Lit

Diseñar procesos, monitorizar instancias y gestionar tareas, en web.

⟷   bus de mensajes · SQS / ElasticMQ — colas FIFO por correlationKey   ⟷
watcher Node.js

Despierta tokens dormidos por tiempo (esperas tipo "espera 2 días").

listener en diseño

Recibe webhooks externos y los traduce a eventos para el engine.

db PostgreSQL

Estado durable compartido. La verdad del sistema vive aquí.

garantía at-least-once

Entrega de extremo a extremo con handlers idempotentes. Efecto equivalente a exactly-once.

// Operar con confianza

Publicar nunca rompe lo que ya está corriendo.

// Versionado y publicación

Versiones inmutables

Solo una versión está activa por proceso. Las instancias vivas siguen ejecutando la versión con la que arrancaron — cambiar el grafo en marcha sería una garantía rota.

v1ARCHIVED — histórica, solo para sus instancias
v2ARCHIVED — instancias que la arrancaron siguen en ella
v3ACTIVE — la que arranca nuevas instancias
// Seguridad y auditoría

Bearer JWT sobre OAuth2 / OIDC

Autenticación estándar con proveedores de identidad intercambiables, y aislamiento por organización en el repositorio de procesos.

Multi-tenant

Cada organización solo ve sus procesos, carpetas y datasources. Aislamiento por organization_id.

Identidad intercambiable

Amazon Cognito o ZITADEL (autohospedado), según el entorno.

Trazabilidad por diseño

Cada transición de estado queda registrada con tiempos, intentos y errores.

// Low-code, con criterio

Visual para el 95% del trabajo. Code-light donde aporta.

El flujo se diseña en un editor visual sin programar el motor. La integración con un sistema nuevo se modela una vez, y luego se reutiliza.

PERFIL · ANALISTA

Diseñador de procesos

Arrastra, conecta y configura propiedades. Modela el flujo y las ramas de error sin escribir código.

100% visual
PERFIL · TI

Integrador

Define un conector YAML (Camel) para cada sistema externo nuevo. Una vez por sistema, no por proceso.

code-light · 1 YAML/sistema
PERFIL · PLATAFORMA

Desarrollador

Extiende el engine vía plugins (políticas de error, validación, observación) solo en casos avanzados.

code · casos raros
// Hablemos

Pon tus procesos a funcionar.

Te enseñamos Orquestador Procesos con un proceso real de tu negocio — y cómo la consultoría de Wattyo lo lleva a producción.